###########################################################################
# $Id: engineSiteItem.p 39 2009-06-24 17:19:17Z donbeave $
###########################################################################

@CLASS
engineSiteItem

@USE
concept/models/conceptBaseItem.p

@BASE
conceptBaseItem

@OPTIONS
locals

#----- Constructor -----

@create[hshData;hshOptions]
  ^cleanMethodArgument[hshOptions]

  ^if(!def $hshOptions.classify){
    $hshOptions.classify[Sites]
  }

  ^BASE:create[$hshData;$hshOptions]

#----- Public -----

@factory[hshData;hshOptions]
  $result[^engineSiteItem::create[$hshData;$hshOptions]]

@hasLocale[objLocale]
  ^labourAssert:required[objLocale;conceptLocaleItem]

  $result(^STORAGE.hasLocale[$objLocale;$self])

@addLocale[objLocale]
#TODO добавить локаль к сайту

@removeLocale[objLocale]
#TODO удалить локаль у сайта

@addDomain[objDomain]
#TODO добавить домен для сайта

@removeDomain[objDomain]
#TODO удалить домен у сайта

#----- Properties -----

@GET_objectsCount[]
  $result(^self.ObjectsCount.int(0))

@GET_defaultLocale[]
  $result[^STORAGE.getLocaleByID[$LocaleID]]

@GET_locales[]
  ^STORAGE.getSiteLocales[$self]

@GET_domains[]
  $result[^STORAGE.getDomainsBySiteID[$ID]]

#----- Private -----

@_toHash[]
  $result[^BASE:_toHash[]]
  $result.domains[$domains]
  $result.locales[$locales]